home *** CD-ROM | disk | FTP | other *** search
/ PCMania 73 / PCMania CD73_1.iso / pcmania / render73 / Taller / castli17 / CASTILLO.POV next >
Text File  |  1998-09-10  |  9KB  |  307 lines

  1. #include "castle20.inc"
  2. //#include "colors.inc"
  3. #include "Golds.inc"
  4. #include "metals.inc"
  5. #include "skies.inc"
  6. //#include "woods.inc"
  7. #include "textures.inc"
  8.  
  9. /*
  10. camera {    //prueba 1 de camara para portada
  11.    location <-10, 850,-850>
  12.    direction <0.0, 0.0, 1>
  13.    up  <0.0, 1.0, 0.0>
  14.    right <.72,0.0, 0.0>                    
  15.    look_at <-200,500,-250> 
  16. //   look_at <0,0,0> 
  17. }   */
  18.  
  19.  
  20. camera {    //prueba 2
  21.    location <-10, 1250,-1250>
  22.    direction <0.0, 0.0, 1>
  23.    up  <0.0, 1.0, 0.0>
  24.    right <.72,0.0, 0.0>                    
  25.    look_at <-200,450,-250> 
  26. }
  27.  
  28.  
  29. //  light_source {<-1500,3550,-3540> color White}
  30.   light_source {<-1600,3550,-3540> color White}
  31.  
  32. #declare agua=texture {
  33.     pigment{color rgb <0.258, 0.258, 0.435>}
  34.     normal {
  35.         ripples 0.35
  36.         frequency 100.0
  37.         turbulence .17
  38.         }
  39.     finish {
  40.         ambient 0.1 diffuse 0.8 phong 1
  41.         reflection 0.44
  42. //      refraction 1
  43. //      ior 1.5 
  44.         }
  45.     scale <700, 700, 700>
  46. }
  47.  
  48.  
  49. #declare BRASS = texture {
  50.     finish {
  51.         ambient 0.10
  52.         diffuse 0.90
  53.         phong 1.00
  54.         phong_size 52.5
  55.         reflection 0.250
  56.     }
  57.     pigment { rgb <0.784, 0.667, 0.455> }
  58. }
  59.  
  60. #declare SILVER = texture {T_Silver_1A}
  61.  
  62. #declare RED_PLASTIC = texture {
  63.     finish {
  64.         ambient 0.10
  65.         diffuse 0.90
  66.         phong 1.00
  67.         phong_size 55.3
  68.     }
  69.     pigment { rgb <1.000, 0.000, 0.000> }
  70. }
  71.  
  72. #declare YELLOW_METAL = texture {
  73.     pigment { P_Gold1 } 
  74.     finish { F_MetalA reflection 0.02}
  75. }
  76. #declare YELLOW_METAL = texture {
  77.     finish { F_MetalA reflection 0.02}
  78.     pigment { rgb <1, 0.5, 0> }
  79. }
  80.  
  81. #declare Default = texture {
  82.     pigment { rgb <1, 0.684, 0.15> } 
  83.     finish { F_MetalA reflection 0.02}
  84. }
  85.  
  86. #declare WHITE_PLSTC = texture {
  87.     pigment { rgb <1, 0.684, 0.15> } 
  88.     finish { F_MetalA reflection 0.02}
  89. }
  90.  
  91. #declare GOLD__LIGHT_ = texture {
  92.     pigment { rgb <0.2, 0.684, 0.2> } 
  93.     finish { F_MetalA reflection 0.02}
  94. }
  95. #declare GOLD__LIGHT_ = texture {
  96.     pigment { rgb <0.2,0.684, 0> } 
  97.     finish { F_MetalA reflection 0.02}
  98. }
  99.  
  100. #declare BLUE_MATTE = texture {
  101.     finish { F_MetalA reflection 0.02}
  102.     pigment { rgb <1, 0.5, 0> }
  103. }
  104.  
  105. #declare ORANGE_PLSTC = texture {
  106.     finish {
  107.         ambient 0.10
  108.         diffuse 0.90
  109.         phong 1.00
  110.         phong_size 37.1
  111.     }
  112.     pigment { rgb <0.890, 0.584, 0.325> }
  113. }
  114. #declare ORANGE_PLSTC = texture {
  115.     pigment { rgb <0.890, 0.584, 0.325> } 
  116.     finish { F_MetalA reflection 0.02}
  117. }
  118.  
  119.  
  120. #declare GREEN_METAL = texture {
  121.     finish {
  122.         ambient 0.10
  123.         diffuse 0.90
  124.         phong 1.00
  125.         phong_size 49.0
  126.         reflection 0.250
  127.     }
  128.     pigment { rgb <0.122, 0.651, 0.122> }
  129. }
  130. #declare GREEN_METAL = texture {
  131.     pigment { P_Gold1 } 
  132.     finish { F_MetalA reflection 0.02}
  133. }
  134.  
  135.  
  136.  
  137. //plane{y,0 texture{agua}}
  138.  
  139.  
  140. sky_sphere { S_Cloud2
  141. }
  142.  
  143. //           CASTILLO
  144. //torre redonda de 10 ancho*25 de alto con ventanas usada en torbala
  145. #declare torred25=union{ 
  146.     object{secb10_10r}
  147.     object{secm10_10r translate<0,100,0>}
  148.     object{secf10_5r translate<0,200,0>}
  149. }
  150. //torre cuadrada de 15 de alto usada en torbala
  151. #declare torcua15=union{
  152.     object{secb10_10c}
  153.     object{secf10_5c translate<0,100,0>}
  154. }    
  155. //torre base lateral de la estructura principal
  156. #declare torbala=union{
  157.     object{secb20_10r rotate y*90}
  158.     object{secm20_10r translate<0,100,0>}      //ventanas
  159.     object{secm20_10r01 translate<0,200,0> rotate y*45}    //con torcol1
  160.     object{secf20_5r05 translate<0,300,0> rotate y*45}     //techo con 4 puertas
  161. //se añaden 4 torres torred25 en las esquinas
  162.     object{torred25 translate<-100,0,0>}
  163.     object{torred25 translate<-100,0,0> rotate y*90}
  164.     object{torred25 translate<-100,0,0> rotate y*-90}
  165.     object{torred25 translate<-100,0,0> rotate y*180}
  166. // se añaden 4 torres cuadradas intercaladas entre las torres redondas
  167.     object{torcua15 translate<-110,0,0> rotate y*45}
  168.     object{torcua15 translate<-110,0,0> rotate y*-45}
  169.     object{torcua15 translate<-110,0,0> rotate y*(180+45)}
  170.     object{torcua15 translate<-110,0,0> rotate y*-(180+45)}
  171.     }
  172.  
  173. //torre redonda de 10 ancho*30 de alto con torres colgantes para intercalar
  174. //entre torbalas
  175. #declare torred30=union{ 
  176.     object{secb10_10r}
  177.     object{secm10_5r translate<0,100,0>}
  178.     object{secm10_10r02 translate<0,150,0> rotate y*45}
  179.     object{secf10_5r05 translate<0,250,0> rotate y*45}
  180. }
  181.  
  182. //Ahora las definiciones para el grupo central de torres del castillo
  183. //y laterales superiores
  184. #declare torcua25=union{ //torres centinelas de base superior
  185.     object{secb10_10c}
  186.     object{secm10_10c01 translate <0,100,0>}
  187.     object{secf10_5c05 translate <0,200,0>}
  188.     object{torpan5_3 rotate y*180 translate <0,250,0>}
  189. }
  190. #declare torcua35=union{ //torres laterales de la estruc. superior princip.
  191.     object{secb10_10c}
  192.     object{secm10_10c translate<0,100,0>}
  193.     object{secm10_10c04 translate <0,200,0>}
  194.     object{secf10_5c05 translate <0,300,0>}
  195.     object{torpan5_3 rotate y*180 translate <0,350,0>}
  196. }
  197. #declare torred15=union{
  198.     object{secb10_10r}
  199.     object{secf10_5r translate<0,100,0>}
  200. }
  201.  
  202. #declare grupsup=union{
  203.     object{secb20_10r }
  204.     object{secm20_10r translate<0,100,0>}
  205.     object{secm20_10r translate<0,200,0>}
  206.     object{secm20_10r translate<0,300,0>}
  207.     object{secf20_5r translate<0,400,0>}
  208. //las 4 torres laterales del grupo superior
  209.     object{torred15 translate<-85,0,-85>}
  210.     object{torred15 translate<85,0,-85>}
  211.     object{torred15 translate<85,0,-85>}
  212.     object{torred15 translate<-85,0,85>}
  213. //las 4 torres intercaladas de 20 metros de altura
  214.     object{torcua35 translate<0,0,-120>}
  215.     object{torcua35 translate<0,0,-120> rotate y*90}
  216.     object{torcua35 translate<0,0,-120> rotate y*-90}
  217.     object{torcua35 translate<0,0,-120> rotate y*180}
  218.  
  219. #declare ristra50=union{
  220.     #declare cal=0
  221. /* el valor inicial de xa se debe a que la aspillera esta centrada en 0 y va
  222.     de  -12.50  a  12.50. Asi, si deseamos crear una ristra desde -250 a 250
  223.     xa comenzara a 250-12.50=237.50. */
  224.     #declare xa=-237.5
  225.     #while(cal!=20)
  226.      object{ aspilleraG translate<xa,0,0>}
  227.      #declare cal=cal+1
  228.      #declare xa=xa+25
  229.     #end
  230.     }
  231.  
  232. //declare body50_35=union{   //cuerpo cuadrado de 50 ancho*35 alto
  233. union{
  234.     box{<-249.8,0,-250>,<249.8,400,-249> texture{texcastle}}
  235.     box{<-249.8,0,-250>,<249.8,400,-249> texture{texcastle} rotate y*90}
  236.     box{<-249.8,0,-250>,<249.8,400,-249> texture{texcastle} rotate y*-90}
  237.     box{<-249.8,0,-250>,<249.8,400,-249> texture{texcastle} rotate y*180}
  238. //techo
  239.     box{<-249.8,399,-249.8>,<249.8,400,249.8> texture{texcastle2 rotate x*90}} 
  240.     object{ristra50 translate<0,400,-250>}
  241.     object{ristra50 translate<0,400,-250> rotate y*90}
  242.     object{ristra50 translate<0,400,-250> rotate y*-90}
  243.     object{ristra50 translate<0,400,-250> rotate y*180}
  244. //4 torres laterales principales en las esquinas del castillo
  245.     object{torbala translate<-250,0,-250>}
  246.     object{torbala translate<250,0,-250>}
  247.     object{torbala translate<-250,0,-250> rotate y*180}
  248. //    object{torbala translate<250,0,-250> rotate y*180}
  249. //4 torres torred30 usadas entre las torres laterales de la base
  250.     object{torred30 translate<0,0,-260>}
  251. //    object{torred30 translate<0,0,-260> rotate y*90}
  252. //    object{torred30 translate<0,0,-260> rotate y*-90}
  253.     object{torred30 translate<0,0,-260> rotate y*180}
  254. //sigue el grupo de torres superiores
  255.     object{grupsup translate<0,400,0>}
  256. //y las 4 torres laterales superiores
  257.     object{torcua25 translate<-240,350,-240>}
  258.     object{torcua25 translate<-240,350,-240> rotate y*180}
  259.     object{torpan10_2 translate<240,350,-240>}
  260. //    object{torcua25 translate<240,350,-240>}
  261. //    object{torcua25 translate<240,350,-240> rotate y*180}
  262.  
  263.     object{colgante1 translate<-125,260,-250>}
  264.     object{colgante1 translate<125,260,-250>}
  265.     object{lateral1_2 translate<0,400,-200>}
  266. //  object{torpan5_1 translate<0,400,-230> rotate y*90}
  267. // incluimos una pequeña casita-torre en la cima
  268.     object{secbpan51 rotate y*180 translate<0,300,-260>}
  269.     object{tejpir5 scale <1,.70,1> translate<0,350,-260>}
  270.     rotate y*45
  271. //    translate<-3000,0,3000>
  272. }
  273.  
  274.  
  275. /*
  276. //muralla de separación del castillo con el mar
  277. #declare ristra650=union{
  278.     #declare cal=0
  279.  el valor inicial de xa se debe a que la aspillera esta centrada en 0 y va
  280.     de  -12.50  a  12.50. Asi, si deseamos crear una ristra desde -250 a 250
  281.     xa comenzara a 250-12.50=237.50. 
  282.     #declare xa=-637.5
  283.     #while(cal!=200)
  284.      object{ aspilleraG translate<xa,0,0>}
  285.      #declare cal=cal+1
  286.      #declare xa=xa+25
  287.     #end
  288.     }
  289. union{
  290.     box{<-649.8,0,-450>,<649.8,180,-420> 
  291.         texture{texcastle rotate x*45}
  292. //        pigment{Orange}
  293.         rotate y*90}
  294.     object{ristra650 translate<0,180,-450> rotate y*90}
  295.     rotate y*45
  296. } */
  297.  
  298. //suelo
  299. //box{<-400,-1,-700>,<400,1,700> pigment{Red} rotate y*45}
  300. box{<-500,-1,-700>,<500,0.1,700> 
  301. //    pigment{image_map{tga "suelo1.tga"} rotate x*90 scale<16,1,16>}
  302.     pigment{Red}
  303.     rotate y*45}
  304.  
  305.  
  306.